/**
 * TO BE DETERMINED
 */
package org.eichar.client.shared;

/**
 * Lists the strings that are used to communication with the service.
 * <p>
 * Note the response is just a {@link Properties} that is written out as XML.
 * The RETURN VALUE CONSTANTS parameters are the keys or values in the
 * properties. Since GWT doesn't have a Properties class the
 * {@link org.eichar.client.shared.Properties} will be used on the client.
 * </p>
 * 
 * @author Jesse
 */
public interface ServiceCommunicationConstants {

    // ------ RETURN VALUE CONSTANTS ------
    /**
     * A KEY in the properties that indicates the type of the question returned.
     */
    String RETURN_KEY_QUESTION_TYPE = "type"; //$NON-NLS-1$

    /**
     * The KEY in the properties that indicates the word that corresponds to the
     * FROM language ({@link #QUERY_KEY_FROM_LANGUAGE}) if the
     * {@link #RETURN_KEY_QUESTION_TYPE} is {@link #VALUE_TRANSLATION_QUESTION}
     */
    String RETURN_FROM_WORD = "FROM_WORD"; //$NON-NLS-1$

    /**
     * The KEY in the properties that indicates the word that corresponds to the
     * TO language ({@link #QUERY_KEY_TO_LANGUAGE}) if the
     * {@link #RETURN_KEY_QUESTION_TYPE} is {@link #VALUE_TRANSLATION_QUESTION}
     */
    String RETURN_TO_WORD = "TO_WORD"; //$NON-NLS-1$

    // ------ REQUEST CONSTANTS ------
    /**
     * Query parameter key. Values indicate the type of question to retrieve
     */
    String QUERY_KEY_QUESTION_TYPE = "QUESTION_TYPE"; //$NON-NLS-1$

    /**
     * A Value for {@link #QUERY_KEY_QUESTION_TYPE}
     */
    String QUERY_VALUE_RANDOM_QUESTION = "RANDOM_QUESTION"; //$NON-NLS-1$

    /**
     * The key for the parameter that declares the "from" language. IE for
     * questions asking for translations from english to german the from
     * parameter would be en.
     */
    String QUERY_KEY_FROM_LANGUAGE = "FROM_LANGUAGE"; //$NON-NLS-1$

    /**
     * The key for the parameter that declares the "to" language. IE for
     * questions asking for translations from english to german the to parameter
     * would be de.
     */
    String QUERY_KEY_TO_LANGUAGE = "TO_LANGUAGE"; //$NON-NLS-1$

    // ------ BOTH REQUEST AND RETURN CONSTANTS --------

    /**
     * A Value for {@link #QUERY_KEY_QUESTION_TYPE} or
     * {@link #RETURN_KEY_QUESTION_TYPE}
     */
    String VALUE_TRANSLATION_QUESTION = "TRANSLATION_QUESTION"; //$NON-NLS-1$

}
